﻿namespace OmniKits.Windows.Interop
{
    partial class User32
    {
        public const int RT_CURSOR = 1;
        public const int RT_BITMAP = 2;
        public const int RT_ICON = 3;
        public const int RT_MENU = 4;
        public const int RT_DIALOG = 5;
        public const int RT_STRING = 6;
        public const int RT_FONTDIR = 7;
        public const int RT_FONT = 8;
        public const int RT_ACCELERATOR = 9;
        public const int RT_RCDATA = 10;
        public const int RT_MESSAGETABLE = 11;
        private const int GROUP_DIFFERENCE = 11;
        public const int RT_GROUP_CURSOR = RT_CURSOR + GROUP_DIFFERENCE;
        public const int RT_GROUP_ICON = RT_ICON + GROUP_DIFFERENCE;
        public const int RT_VERSION = 16;
        public const int RT_DLGINCLUDE = 17;
        public const int RT_PLUGPLAY = 19;
        public const int RT_VXD = 20;
        public const int RT_ANICURSOR = 21;
        public const int RT_ANIICON = 22;
        public const int RT_HTML = 23;
        public const int RT_MANIFEST = 24;
    }
}

namespace OmniKits.Windows.Interop
{
    using System;
    using static User32;

    public static class ResourceType
    {
        public static readonly IntPtr Cursor = (IntPtr)RT_CURSOR;
        public static readonly IntPtr Bitmap = (IntPtr)RT_BITMAP;
        public static readonly IntPtr Icon = (IntPtr)RT_ICON;
        public static readonly IntPtr Menu = (IntPtr)RT_MENU;
        public static readonly IntPtr Dialog = (IntPtr)RT_DIALOG;
        public static readonly IntPtr String = (IntPtr)RT_STRING;
        public static readonly IntPtr FontDir = (IntPtr)RT_FONTDIR;
        public static readonly IntPtr Font = (IntPtr)RT_FONT;
        public static readonly IntPtr Accelerator = (IntPtr)RT_ACCELERATOR;
        public static readonly IntPtr RCData = (IntPtr)RT_RCDATA;
        public static readonly IntPtr MessageTable = (IntPtr)RT_MESSAGETABLE;
        private static readonly IntPtr GroupDifference = (IntPtr)11;
        public static readonly IntPtr GroupCursor = GroupDifference + RT_CURSOR;
        public static readonly IntPtr GroupIcon = GroupDifference + RT_ICON;
        public static readonly IntPtr Version = (IntPtr)RT_VERSION;
        public static readonly IntPtr DialogInclude = (IntPtr)RT_DLGINCLUDE;
        public static readonly IntPtr PlugPlay = (IntPtr)RT_PLUGPLAY;
        public static readonly IntPtr VxD = (IntPtr)RT_VXD;
        public static readonly IntPtr AniCursor = (IntPtr)RT_ANICURSOR;
        public static readonly IntPtr AniIcon = (IntPtr)RT_ANIICON;
        public static readonly IntPtr Html = (IntPtr)RT_HTML;
        public static readonly IntPtr Manifest = (IntPtr)RT_MANIFEST;
    }
}